'J-Series/[PPC] QR Magazine'에 해당되는 글 1건

[Pocket PC] QR Code Reader - QR Magazine 1.0 :: 2008/07/19 00:15

QR Magazine


QR Magazine.CAB

cab 실행 파일


1. 개요

학교 프로젝트로 만들게 된 QR Magazine 이라는 PPC용 프로그램입니다.
QR Magazine의 기본적인 아이디어는 QR Code에서 따왔습니다.

※ QR Code 란?

QR Code는 일본에서 유행중인 바코드로서 다음과 같이 생긴 2D 바코드입니다.

2D 바코드는 기존에도 있었지만 이 2D 바코드를 기반으로 태어난 QR Code는 일본 덴소웨이브(http://www.denso-wave.com/qrcode/)란 곳에서 처음 태어났습니다. QR Magazine의 메인에 있는 이미지도 이곳에서 퍼왔죠. ^^

일본에 가면(가보지는 않았지만), 위와 같은 QR Code들이 적지 않게 보임을 알 수 있습니다. 일본은 핸드폰으로 QR Code를 찍어서 웹이나 기타 서비스(할인 쿠폰이나 비행기표 발권 등)에 다이렉트로 접근하는데 사용하고 있습니다.  이것이 QR Code의 주요 활용법입니다.

여기서 우리가 궁금해야 하는 점은 왜 QR Code이냐? 는 점입니다. 
QR Code는 간략하게 다음과 같은 특징을 가지고 있습니다.

- 기존의 바코드 보다 대량의 데이터를 수용할 수 있습니다.(알파벳+숫자 최대 4,296자)
- 기존의 바코드 보다 작은 크기를 가지고 있습니다.
- 한자와 일본어를 표현할 수 있습니다.(소스만 다듬으면 한글도 가능할 듯..)
- 먼지와 손상에 대한 저항력을 가지고 있습니다.(최대 30%의 손실도 복원)
- 다양한 방향에서 인식이 가능합니다.

더 자세한 사항은 위의 덴소 웨이브 홈페이지를 참고하시기 바랍니다.

이 QR Code를 활용한 QR Magazine의 컨셉은 "잡지에 QR Code를 삽입하고, 잡지에서 표현해주기 불가능한 정보(소리나 영상 같은 멀티미디어 정보)나 지면상 부족한 정보를 QR Code를 통해 웹으로 접근하자!"입니다.

2. QR Magazine의 특징

이를 통해 QR Magazine이 완성되어 제공하는 기능은 크게 다음과 같습니다.

- 스마트폰 카메라를 이용한 QR Code 촬영
- 촬영된 QR Code를 저장/불러오기
- QR Code의 인식
- 인식된 QR Code에 대한 웹 또는 TTS 연결
- 촬영된 QR Code를 보정해 줄 수 있는 몇 가지 영상 처리

3. 동작환경

제 핸드폰을 통해 개발하였기 때문에 다음과 같은 환경에서만 확실히 구동을 보장할 수 있습니다.  혹시나 Mobile 5 환경의 요구가 들어오면 시스템상으로 전혀 하자가 없기 때문에 다운그래드 할 용의는 있습니다.

- Windows Mobile 6 Professional 이상 환경
- 테스트 폰: M4650

4. 기능 설명

① QR Code 촬영

다음과 같이 카메라를 설정 할 수 있는 메뉴가 메인에 마련되어 있습니다.



카메라 설정이 끝난 후 QR Code를 자동으로 인식할 것인지, 수동으로 인식할 것인지 선택을 합니다.

자동의 경우, QR Code를 촬영하자마자 바로 인식하는 것이고,
수동의 경우, QR Code를 촬영한 후 영상처리(자르기, 크기 조절, 회전 등)를 해서 약간의 수정을 가해 줄 수 있습니다.

보통 수동 인식으로 이미지를 약간 편집을 해주는 것이 인식률과 속도를 높이는 방법이기에 마련했습니다.  촬영을 할 때 QR Code를 딱 맞춰서 찍기가 힘들기도 하구요.

모든 설정이 끝나면 메인에서 왼쪽 소프트 키 버튼을 누르면, 촬영이 시작됩니다.
(주의하실 점은 먼저 가로로 촬영을 하시는 것이 인식률을 높일 수 있으며, 촬영을 하고나서 자동으로 종료가 되지 않기 때문에 수동으로 x나 종료 키를 눌러주셔야 한다는 점입니다.)

자동 인식 모드에서 촬영을 했으나, QR Code를 도저히 인식 할 수 없는 이미지라면 다음과 같은 메시지가 뜨면서 수동 인식 모드로 넘어갈 수 있습니다.


② 저장된 이미지 수동/자동 인식 모드로 불러 오기

촬영을 하거나, 수동 인식모드를 통해 수정된 QR Code를 이미지로 저장 할 수 있기 때문에 불러 와서 다시 인식할 수도 있습니다.

다음과 같이 메뉴를 통해 접근이 가능합니다.


자동 인식과 수동 인식에 따라서 ①번과 같은 작업을 하게됩니다.

③ 수동 인식 모드

수동 인식 모드에서는 촬영된 이미지에 대해서 다음과 같은 영상 처리를 할 수 있게 되어있습니다.  특히 이미지 회전 같은 경우, 특수각(90도, 180도, 270도)의 경우만 소스가 돌아다니고 있어서 세부 각을 처리하는데 상용 라이브러리를 제외하고는 최초로(Compact framewok로 구현하는 경우) 구현에 성공했습니다.

이를 계기로 Compact Framework 상에서의 영상처리 라이브러리를 구현하고 소스를 공개할 계획을 갖고 있습니다.





안타깝게도 Undo의 기능은 제공되지 않으므로, 이미지를 수정한 후 복구 할 수 있는 수준은 각 이미지 탭을 이동할 때 다음과 같이 한가지 영상 처리에 대한 Undo 만을 수행할 수 있습니다.


그리고 오른쪽 소프트키를 눌러서 다음과 같이 수정된 이미지를 저장 할 수도 있습니다.


왼쪽 소프트키를 누르면, 인식 작업이 시작되고 성공적으로 인식되면 인식 후 화면으로 넘어가지만 수정된 이미지도 인식되지 않을 경우 다음과 같은 메시지가 뜹니다.


약간의 애매한 메시지일 수 있으나,

예를 선택해서 저장된 이미지를 그냥 불러올 수도 있고,
아니오를 선택해서 이미지를 더 수정하거나, OK를 눌러 새로 촬영을 할 수도 있습니다.

④ 인식 후 화면

QR Code가 성공적으로 인식되면 다음과 같은 화면을 보실 수 있습니다.  인식하는 종류는 2가지입니다.  한가지는 URL이고, 나머지는 모두 그냥 Text로 인식합니다.

일단 QR Code가 URL을 담고 있다면, 자동으로 웹으로 연결 해 줍니다.


보시는 바와 같이 상단에 URL이 뜨고, 좌◀, 우▶ 버튼을 통해서 자유롭게 이동할 수 있습니다.  또한

오른쪽 소프트키를 눌러 새로고침을 할 수도 있고,
왼쪽 소프트키를 눌러 수동인식 모드로 갈 수도 있습니다.

다음은 Text로 인식되었을 경우의 화면입니다.


Text 로 인식되면, TTS 기능을 활용하여 Text를 자동으로 읽어줍니다.
TTS 엔진이 트라이얼 버젼이기 때문에, 첫부분에 약간의 멘트와 함께 이어서 인식된 텍스트를 읽어줍니다.

5. 끝으로...

짧은 기간에 만든 프로그램이다보니 버그도 있을 수 있고, 이걸 어디다 쓰나~ 하시는 분들도 있을 겁니다.

QR Magazine은 그냥 QR Code에 대해 궁금하거나 새로이 공부하시는 분들에게 약간의 도움이 될까 하는 마음에 올립니다.  또한 다른 플렛폼이나 언어보다 상대적으로 부족한 Compact Framework 영상 처리의 가능성에 대해서도 한번쯤 생각해 볼 수 있겠네요.

프로그램에 대한 궁금증이나, 좋은 의견은 댓글로 달아주시면 감사하겠습니다.

2008/07/19 00:15 2008/07/19 00:15
  • 비밀방문자 | 2008/07/17 17:10 | PERMALINK | EDIT/DEL | REPLY

    관리자만 볼 수 있는 댓글입니다.

  • 비밀방문자 | 2009/08/28 22:25 | PERMALINK | EDIT/DEL | REPLY

    관리자만 볼 수 있는 댓글입니다.

  • 윤정짱 | 2009/08/30 11:44 | PERMALINK | EDIT/DEL | REPLY

    프로그램을 사용에 대해 여쭤볼게 있어요. .. ㅎㅎ 홈피에 자주 안들어오시나봐요..ㅠ.ㅠ

  • HD | 2009/12/15 01:12 | PERMALINK | EDIT/DEL | REPLY

    안녕하세요~ 엑스페리아에서는 촬영 버튼을 누르니 인수가 올바르지 않다고 하면서 오류메시지를 보이네요.

    자세히 를 누르면 나오는 오류 내용을 적어보겠습니다.


    QR Reader.exe
    NullReferenceException

    위치:
    QR_Reader.TransQRCode..ctor(fileInfo qrcode)
    위치:

    QR_Reader.QRReader.MNU_Capture_Click(Object sender, Event args e)
    위치:
    System.Windows.Forms.MenuItem.OnClick(EventArgs e)
    위치:
    System.Windows.Forms.Menu.ProcessMnuProc(Control ctlThis, WM wm, Int32 wParam, Int32 lParam)
    위치:
    System.Windows.Forms.Form.WnProc(WM wm, Int32 wParam, Int32 lParam)
    위치:
    System.Windows.Forms.Control._Internal WnProc(WM wm, Int32 wParam, Int32 lParam)
    위치:
    Microsoft.GL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
    위치:
    System.Windows.Forms.Application.Run(Form fm)
    위치: QR_Reader.Program.Main()


    엑스페리아에서는 실행이 불가능한가요?

  • tester | 2010/08/24 23:34 | PERMALINK | EDIT/DEL | REPLY

    인식 안됌 쓰레기자료

    • JCreator | 2010/08/25 21:37 | PERMALINK | EDIT/DEL

      오래된 자료에다 날림으로 만들어서 시간이 지난 지금은 많은 디바이스에서 지원하지 않을 수 있습니다.
      증상이나 오류 메시지가 있다면 알려주세요.
      더 이상 개발은 하지않지만 증상에 대한 조언은 해드릴 수 있을 것 같군요. ^^

    • 돼지눈에는돼지만보인다더니 | 2010/11/12 02:59 | PERMALINK | EDIT/DEL

      쓰레기같은 댓글을 달고 있는 쓰레기..
      ㅉㅉㅉ 참 병맛나는넘들이 이렇게 많으니 무슨 초글링도 아니고 쌩때야.;
      basic이용해서 구구단이라도 짜봤니?한심한지고!!

  • If you are a fashion fanatic and looking for a way via which you can get the best of <a href="http://www.bagswebstores.com/">discount designer handbags</a> at a beyond affordable price, it is best recommended that you scout the market effectively so that you can lay your hands on the best <a href="http://www.bagswebstores.com/">cheap handbags</a> in the very same marketplace. Due to immense competition, there are a plethora of retailers in the online world that are more than willing to sell <a href="http://www.bagswebstores.com/">wholesale designer handbags</a> at the best afford able rates. All it takes is a little market scouting so that you can find them as per your personal and financial specifications. If you are willing to invest a little more money into <a href="http://www.bagswebstores.com/">designer handbags for less</a>, you can also have retailer's custom make the <a href="http://www.bagswebstores.com/">cheap designer handbags</a> that you have always wanted. Remember to finally check the shipping and handling methods that the retailer will offer so that you can find the best of ways via which you can get what you want.

Name
Password
Homepage
Secret